iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
Security

picoCTF系列 第 6

[Day 6] Ready Gladiator 0

  • 分享至 

  • xImage
  •  

看到題目要求,知道解題的方法是讓 warrior 一直輸,並且提示告訴我們,這題和 CoreWars 有關。
https://ithelp.ithome.com.tw/upload/images/20240811/20168342w4cz8rm8iN.png
hint 1:CoreWars is a well-established game with a lot of docs and strategy
hint 2:Experiment with input to the CoreWars handler or create a self-defeating bot

那我們先來看看什麼是 CoreWars 。

CoreWars 起源於20世紀80年代,是一種由抽象組合語言 Redcode 寫成的遊戲。在這個遊戲中,玩家撰寫程序(稱為 warrior),並在一個模擬器中讓這些戰士彼此對抗。其中 CoreWars 的模擬器稱為MARS(Memory Array Redcode Simulator),它模擬了戰士的運行環境。
詳情可見:Core_War

使用 cat 讀取題目給的 imp.red 檔,會看到 Redcode,裡面的動作是 mov 0, 1

$ cat imp.red 
;redcode
;name Imp Ex
;assert 1
mov 0, 1
end

試著連上 webshell,並將 imp.red 作為輸入,會發現我們的 warrior 持續平手。而題目想要的是我們的 warrior 持續輸。

$ nc saturn.picoctf.net 63726 < imp.red
;redcode
;name Imp Ex
;assert 1
mov 0, 1
end
Submit your warrior: (enter 'end' when done)

Warrior1:
;redcode
;name Imp Ex
;assert 1
mov 0, 1
end

Rounds: 100
Warrior 1 wins: 0
Warrior 2 wins: 0
Ties: 100
Try again. Your warrior (warrior 1) must lose all rounds, no ties

於是我們來看 Corewars 的使用指南 ( https://vyznev.net/corewar/guide.html ),發現 mov 這個動作是複製資料到其他位置。
上下查看,dat 是結束這個 process,nop 是不執行動作,於是我們猜測這兩個指令或許能讓我們的 warrior 持續輸。
https://ithelp.ithome.com.tw/upload/images/20240811/201683429Cxs9R1rPh.png

首先將指令改成 dat,發現成功的得到 flag 了。

$ nc saturn.picoctf.net 63726 < imp.red
;redcode
;name Imp Ex
;assert 1
dat 0, 1
end
Submit your warrior: (enter 'end' when done)

Warrior1:
;redcode
;name Imp Ex
;assert 1
dat 0, 1
end

Rounds: 100
Warrior 1 wins: 0
Warrior 2 wins: 100
Ties: 0
You did it!
picoCTF{h3r0_t0_z3r0_4m1r1gh7_f1e207c4}

再試著用 nop,發現也可以使 warrior 一直輸。

$ nc saturn.picoctf.net 63726 < imp.red
;redcode
;name Imp Ex
;assert 1
nop 0, 1
end
Submit your warrior: (enter 'end' when done)

Warrior1:
;redcode
;name Imp Ex
;assert 1
nop 0, 1
end

Rounds: 100
Warrior 1 wins: 0
Warrior 2 wins: 100
Ties: 0
You did it!
picoCTF{h3r0_t0_z3r0_4m1r1gh7_f1e207c4}

小結:
認識 CoreWars 是甚麼,還有 Redcode 中基本指令。


上一篇
[Day 5] Virtual Machine 0
下一篇
[Day 7] heap 1
系列文
picoCTF30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言